package cn.group7.padserver.dao;

import cn.group7.padserver.pojo.Order;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author 谷汉斌
 * @description 订单数据访问接口
 * @createTime 2024/7/22 下午4:03
 */
@Mapper
public interface OrderDao {
    /**
     * 根据关键字查询商品（订单）
     *
     * @param params 参数
     * @return 商品（订单）列表
     */
    List<Order> selectByKeys(Map<String, Object> params) ;

    /**
     * 随机输出10条记录
     *
     * @return 10条记录
     */
    List<Order> queryOrdersRandom();

    /**
     * 分页查询商品（订单）
     *
     * @param params 参数
     * @return 商品（订单）列表
     */
    List<Order> queryOrdersByPage(Map<String, Object> params);

    /**
     * 获取商品（订单）总数
     * @param params 参数
     * @return 商品（订单）总数
     */
    int selectTotal(Map<String, Object> params);

    /**
     * 根据id查询商品（订单）
     *
     * @param orderId 商品（订单）id
     * @return 商品（订单）
     */
    Order selectOrderById(Integer orderId);

    /**
     * 根据用户名查询商品（订单）
     *
     * @param params 参数
     * @return 商品（订单）列表
     */
    List<Order> selectOrderByUsername(Map<String, Object> params);;

    /**
     * 根据用户名查询商品（订单）总数
     *
     * @param map 参数
     * @return 商品（订单）总数
     */
    Integer selectTotalByUsername(Map<String, Object> map);

    /**
     * 添加商品（订单）
     *
     * @param order 商品（订单）
     * @return 是否添加成功
     */
    int addOrder(Order order);

    /**
     * 修改商品（订单）
     *
     * @param order 商品（订单）
     * @return 是否修改成功
     */
    int updateOrder(Order order);

    /**
     * 删除商品（订单）
     *
     * @param orderId 商品（订单）id
     * @return 是否删除成功
     */
    int deleteOrder(Integer orderId);
}
